home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / amos / amoslis0.lzh / AMOSLIST / 000083_amos-request@svcs1.digex.net_Sat Aug 12 05:29:08 1995.msg < prev    next >
Internet Message Format  |  1995-09-01  |  4KB

  1. Received: from svcs1.digex.net (svcs1.digex.net [204.91.197.224]) by mail1.access.digex.net (8.6.12/8.6.12) with ESMTP id FAA21356;  for  ; Sat, 12 Aug 1995 05:29:07 -0400
  2. Received: (from daemon@localhost) by svcs1.digex.net (8.6.12/8.6.12) id DAA04859 for amos-out; Sat, 12 Aug 1995 03:30:42 -0400
  3. Received: from mail1.access.digex.net (mail1.access.digex.net [205.197.247.2]) by svcs1.digex.net (8.6.12/8.6.12) with ESMTP id DAA04856 for <amos-list@svcs1.digex.net>; Sat, 12 Aug 1995 03:30:41 -0400
  4. Received: from ds1.acs.ucalgary.ca (root@ds1.acs.ucalgary.ca [136.159.34.101]) by mail1.access.digex.net (8.6.12/8.6.12) with SMTP id DAA17238;  for <amos-list@access.digex.net> ; Sat, 12 Aug 1995 03:30:39 -0400
  5. Received: by acs3.acs.ucalgary.ca (AIX 3.2/UCB 5.64/4.03)
  6.           id AA31155; Sat, 12 Aug 1995 01:32:19 -0600
  7. Message-Id: <9508120732.AA31155@acs3.acs.ucalgary.ca>
  8. Subject: Re: Command Interpreter
  9. To: bwyatt@paston.co.uk (Benedict Wyatt)
  10. Date: Sat, 12 Aug 95 1:32:18 MDT
  11. From: "Robert Andrew Currie" <racurrie@acs.ucalgary.ca>
  12. Cc: amos-list@access.digex.net
  13. In-Reply-To: <9508112147.AA00066@paston.co.uk.uucp>; from "Benedict Wyatt" at Aug 11, 95 9:47 pm
  14. X-Mailer: ELM [version 2.3 PL11B]
  15. Mime-Version: 1.0
  16. Content-Type: text/plain; charset=US-ASCII
  17. Content-Transfer-Encoding: 7bit
  18. Content-Length: 2179      
  19. Status: RO
  20. X-Status: 
  21.  
  22. > Thanks to everyone who helped with my 64EHB mode problem, it is now working.
  23. > I now have another problem:
  24. > Does anyone know how to write a command interpreter? (I don't think that's
  25. > the right description) Something that will take a text string and interpret
  26. > what command it is, but *quickly*, and not using tree structures. Kinda
  27. > like the CLI/Shell or even AMOS, but not as complex.
  28. > Thanks,
  29. >      _________________________________
  30. >     /                                 \
  31. >     > Ben Wyatt - bwyatt@paston.co.uk <
  32. >     \_________________________________/ ï¿½1995 Very Interesting Signatures
  33.  
  34. If you follow these steps you can create your own interpretter:
  35.  
  36. Step One: Input the string
  37. Step Two: Using the space as a divider separate the string into
  38.           words which you can place in an array. You can use the
  39.       command Instr(COM_LINE$," ") which will give the first
  40.       occurance of the space in the command line. Clip out 
  41.       the text using =Left$ and assign it to the array if it
  42.       matches any of the reserved words otherwise discard it.
  43.       Remove this text from COM_LINE$ and any extra preceding
  44.       spaces and repeat the process. Until you get 0 back
  45.       from Instr.
  46. Step Three: For each room there should be a list of objects that
  47.       can be manipulated or a global list for the game which
  48.       also holds the location of the object. The list should
  49.       include descriptions, flags for what can be done with
  50.       the object, if  it is a container...etc and data such 
  51.       as weight and so forth. Either index the words you have
  52.       obtained and use On Proc or On Gosub or use if 
  53.       statements to combine the actions words with the
  54.       objects.
  55.  
  56.       If COM$(0)="LOOK"
  57.         OBJECT_ID=Match(OBJECTS$(0),COM$(1))
  58.                 Print OBJECT_DESC$(OBJECT_ID)
  59.           end if
  60.  
  61.       If you indexed everything when you parsed the command
  62.       line then you could use the following:
  63.  
  64.       On COM(0) Proc NORTH,SOUTH,EAST,WEST,LOOK,GET,...
  65.  
  66.       and then have code similar to above in the procedure. 
  67.  
  68.  
  69.     I assume you are writing some form of Infocom adventure
  70. with rooms and so on... if not perhaps you might elaborate on
  71. what you wish to accomplish.
  72.  
  73.             Robert Currie
  74.  
  75.